home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
mtdialha.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
6KB
|
117 lines
(*----------------------------------------------------------------------*
* *
* MAGICTOOLS Modula's All purpose GEM Interface Cadre Toolbox *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus, sowie die *
* Verbreitung des bersetzten, nicht gelinkten Codes in schriftlicher, *
* oder maschinenlesbarer Form, insbesondere in Zeitschriften, Mail- *
* boxen oder anderen Medien bedarf der ausdrcklichen schriftlichen *
* Einverstndnisserklrung des Autors. *
* *
* Die Verbreitung des Moduls als Teil eines gelinkten Programms ist *
* fr Lizenznehmer ausdrcklich erlaubt! Der Autor behlt sich das *
* Recht vor, diese Erlaubnis jederzeit und ohne Angaben von Grnden zu *
* widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* mtDialHandler "Halbautomatisches" Dialoghandling *
* *
* Fr jeden Returnwert, den DialDo liefert, wird eine Prozedur vom Typ *
* DialAction definiert (die Proz. erhlt alle Informationen, um auch *
* mehrere Returnwerte aus verschiedenen Dialogen handeln zu knnen). *
*----------------------------------------------------------------------*)
DEFINITION MODULE mtDialHandler;
FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
FROM SYSTEM IMPORT ADDRESS;
CONST LeaveDial = 0; (* Dialog abbrechen *)
DrawObjc = 1; (* Objekt neuzeichnen *)
ResetSELECTED = 2; (* SELECTED-Flag zurcksetzen *)
SetSELECTED = 3; (* SELECTED-Flag setzen *)
ResetCHECKED = 4; (* CHECKED-Flag zurcksetzen *)
SetCHECKED = 5; (* CHECKED-Flag setzen *)
TYPE ACTION; (* Die Daten sind nur Modulintern. Defacto ist ACTION eine
* verkettete Liste auf Prozeduren des Typs DialAction.
*)
TYPE DialAction = PROCEDURE ( (* dial *) ADDRESS,
(* entry *) sINTEGER,
(* double *) BOOLEAN): BITSET;
(* Eine Prozedur dieses Typs handelt ein oder mehrere Objekte.
* Die Routine wird von der Prozedur DialHandler aufgerufen.
*
* dial = Adresse des Objektbaums
* entry = Objektnummer
* double = TRUE bei Doppelklick auf das Objekt
*
* Prozedur returniert ein Bitset mit den Flags LeaveDial,
* wenn der Dialog abgebrochen werden soll; DrawObjc, wenn das
* Objekt neugezeichnet werden soll; ResetSELECTED bzw. SetSELECTED,
* SELECTED-Flag setzen bzw. zurcksetzen; ResetCHECKED bzw.
* SetCHECKED, CHECKED-Flag setzen bzw. zurcksetzen.
*)
PROCEDURE InitAction (VAR actions: ACTION);
(* Initalisiert eine ACTION-Variable *)
PROCEDURE DisposeAction (VAR actions: ACTION);
(* Deinitalisiert eine ACTION-Variable *)
(*$H+ Lokale Prozeduren erlauben *)
PROCEDURE SetAction (VAR actions: ACTION; entry: sINTEGER; proc: DialAction): BOOLEAN;
(* Trgt eine Action-Prozedur in actions ein. FALSE wenn Milungen *)
(*$H=*)
PROCEDURE ResetAction (VAR actions: ACTION; entry: sINTEGER);
(* Lscht eine Action-Prozedur aus action *)
CONST DoProlog = 0;
DoEpilog = 1;
DoGraphics = 2;
PROCEDURE DialHandler (dial: ADDRESS; todo: BITSET; rect: ARRAY OF LOC;
edobjc: sINTEGER; actions: ACTION);
(* Arbeitet einen Dialog ab. Fr jeden Returnwert, den mtDials.DialDo
* liefert mu eine Prozedur vom Typ DialAction deklariert und in
* 'actions' eingetragen sein. edobjc ist ein eventuelles Edit-Objekt.
* Der Dialog wird immer auf dem Bildschirm zentriert dargestellt.
*
* dial = Adresse des Objektbaums.
*
* todo = Bestimmt, was der Dialhandler alles zu tun hat:
* DoProlog: Bringt den Dialog auf den Bildschirm. Der Dialog mu
* bereits mit mtDials.NewDial initialisiert worden sein.
* DoEpilog: Entfernt den Dialog wieder vom Schirm.
* DoGraphics: Erwartet in rect ein Rechteck, von dem aus eine
* Growbox (bei DoProlog) bzw. Shrinkbox (bei DoEpilog)
* gezeichnet wird.
*
* rect = Rechteck, wird bei todo-Flag DoGraphics ausgewertet
*
* edobjc = Ein eventuelles Editobject, oder -1.
*
* actions = Liste der DialAction-Prozeduren
*)
END mtDialHandler.